var User = require('../models/user')
// showSignup
exports.showSignup = function (req, res) {
    res.render('signup', {
        title: '注册页面'
    })
}

// showSignin
exports.showSignin = function (req, res) {
    res.render('signin', {
        title: '登录页面'
    })
}


// signup 注册
exports.signup = function (req, res) {
    var _user = req.body.user // 获取表单中的数据 req.param('user)
    // '/user/signup/:userid'  var _userid = req.params.userid  路由中  var _userid = req.body.userid
    // '/user/signup/1111>userid=1112'  var _userid = req.query.userid url ？ 中
    //console.log(_user) // 是一个对象

    // 一个用户名重复注册处理
    User.findOne({name: _user.name}, function (err, user) {
        if (err) {
            console.log(err)
        }
        if (user) {  // 如果用户存在，跳登录
            res.redirect('/signin')
        } else {  // 用户名不存在，直接保存数据库
            user = new User(_user)
            user.save(function (err, user) {
                if(err){
                    console.log(err)
                }
                console.log(user)
                // 重定向
                res.redirect('/')
            })
        }
    })
    // User.find({name: _user.name}, function (err, users) {
    //     console.log('hahahahaah')
    //     if (err) {
    //         console.log(err)
    //     }
    //     if (users.length === 0) {  // 如果用户存在，跳登录
    //         console.log('cunzai')
    //         console.log(user)
    //         res.redirect('/signin')
    //     } else {  // 用户名不存在，直接保存数据库
    //         console.log('bucunzai')
    //         user = new User(_user)
    //         console.log(user)
    //         user.save(function (err, user) {
    //             if(err){
    //                 console.log(err)
    //             }
    //             console.log(user)
    //             // 重定向
    //             res.redirect('/')
    //         })
    //     }
    // })
}

// userlist page
exports.list = function (req, res) {
    User.fetch(function (err, users) {
        if (err) {
            console.log(err)
        }
        res.render('userlist', {
            title: 'imooc 用户列表页',
            users: users
        })
    })
}

// signin 登录
exports.signin = function (req, res) {
    var _user = req.body.user
    var name = _user.name
    var password = _user.password
    User.findOne({name: name}, function (err, user) {
        if (err) {
            console.log(err)
        }
        // 用户不存在
        if (!user) {
            console.log('denglvbucunzai')
            return res.redirect('/signup')
        }
        console.log('denglucunzai')
        // 用户存在 判断密码
        user.comparePassword(password, function (err, isMatch) {
            if (err) {
                console.log(err)
            }
            // 密码匹配
            if (isMatch) { // 只是匹配密码，没有保持用户登录状态，要把状态存到内存中去
                // 服务器和客户端会话 把 user 存到 session 中去
                req.session.user = user
                console.log('Password is matched')
                res.redirect('/')
            } else {
                res.redirect('/signin')
                console.log('Password is not matched')
            }
        })
    })
}

// logout 登出
exports.logout = function (req, res) {
    delete req.session.user  // 删除 session 中user 信息
    // delete app.locals.user // 删除  本地变量user 这个里面访问不到 app
    res.redirect('/')
}

// middware for user 用户权限
exports.signinRequired = function (req, res, next) {
    var user = req.session.user
    console.log('signin')
    console.log(user)
    if (!user) {
        return res.redirect('/signin')
    }
    next ()
}

exports.adminRequired = function (req, res, next) {
    var user = req.session.user
    if (user.role <= 10) {
        return res.redirect('/signin')
    }
    next ()
}